* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #515a6e;
}

p {
  position: relative;
  font-size: 5rem;
  font-weight: 600;
  word-spacing: 0.2em;
  white-space: nowrap;
  color: transparent;
  background-image: linear-gradient(180deg, #5cadff 0%, #2d8cf0 50%, #1c5a99 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

p::before {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  color: #2d8cf0;
  filter: blur(10px);
  opacity: 0.7;
}
p::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;

  color: transparent;

  background-image: linear-gradient(
    100deg,
    transparent 25%,
    rgba(255, 255, 255, 0.6) 50%,
    transparent 75%
  );
  -webkit-background-clip: text;
  background-clip: text;
  background-size: 200% 100%;
  animation: shine 4s infinite linear;
}

@keyframes shine {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
